// pages/login-code/login-code.js
import request from '../../../utils/request';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: '',
    time: 61,
    max_time: 61,
    code: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      phone: options.phone
    })

    this.sendCode();
  },
  setInterval() {
    this.setData({
      time: this.data.time - 1
    })
    // 倒计时效果
    this.timeId = setTimeout(() => {
      if (this.data.time <= 1) {
        this.setData({
          time: this.data.max_time
        })
        return;
      }
      this.setInterval();
    }, 1000)
  },
  // 发送验证码的函数
  async sendCode() {
    if (this.data.time !== this.data.max_time) return;
    // 倒计时
    this.setInterval();
    // 发送请求，获取验证码
    // await request('/captcha/sent', {
    //   phone: this.data.phone,
    // })
  },
  // 异步函数导致input事件出现问题bug
  handleCodeInput(e) {
    const code = e.detail.value;
    this.setData({
      code,
    })
    if (code.length === 4) {
      this.login();
    }
  },

  async login() {
    // 发送请求，验证验证码是否正确
    await request('/captcha/verify', {
      phone: this.data.phone,
      captcha: this.data.code
    })
    // 请求登录
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    clearTimeout(this.timeId);
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    clearTimeout(this.timeId);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})